home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / tcoop.arc / TCOOP2.ARC / ISOUNIT.H < prev    next >
Encoding:
C/C++ Source or Header  |  1991-10-26  |  3.5 KB  |  102 lines

  1. // isounit.h: Interactive Screen Object (Iso) Class
  2.  
  3. #ifndef H_ISOUNIT
  4. #define H_ISOUNIT
  5.  
  6. #include <stdlib.h>
  7. #include "fsounit.h"
  8. #include "keybrd.h"
  9.                    
  10. // Some event codes (The msmouse.h and keybrd.h files provide others)
  11. const int Close    = 0x011b;  // Same as the ESC key
  12. const int ShutDown = 0x2d00;  // Same as the ALT-X key
  13. const int Cycle    = 0x0f09;  // Same as the Tab key
  14. const int StrMsg   = 0xffff;  // Indicates there is a string message
  15.  
  16. class Iso;         // Forward declarations
  17. class IsoMgr;
  18.  
  19. struct MsgPkt {     // Message packet      
  20.   Iso *Focus;       // Holds current focus 
  21.   unsigned Code;    // The event code      
  22.   unsigned RtnCode; // Return event code   
  23.   int Mx, My;       // Mouse coordinates   
  24.   char Str[80];     // The message         
  25. };
  26.  
  27. extern MsgPkt NullMsg; // Defined in isounit.cpp
  28.  
  29. class Iso {
  30. public:
  31.   Fso *Panel;        // Can be a Tfso or Gfso pointer 
  32.   char Active;       // True if iso is selected      
  33.   char Visible;      // True if iso is showing       
  34.   char IsClosed;     // True if Iso is closed        
  35.   char TouchFlag;    // True if touching another Iso 
  36.   char ClipToFrame;  // Used for scroll bars         
  37.   Iso *Base;         // The base for this iso        
  38.   Iso *Under, *Over; // Iso stack pointers           
  39.   IsoMgr *SubMgr;    // The child iso stack          
  40.   Iso(Fso *P);
  41.   virtual ~Iso(void);
  42.   virtual Rso *ClippingRect(void);
  43.   virtual void SetLocn(int Xl, int Yl, CoordType Ctype); 
  44.   virtual void SetSize(int W, int H); 
  45.   virtual void Move(int X, int Y); 
  46.   virtual void DeltaMove(int Dx, int Dy); 
  47.   virtual void MoveLoop(MsgPkt &M); 
  48.   virtual void Stretch(int W, int H); 
  49.   virtual void DeltaStretch(int Dw, int Dh); 
  50.   virtual void StretchLoop(MsgPkt &M); 
  51.   virtual int Obscured(void);
  52.   virtual void Draw(void) { ; }
  53.   virtual void DrawPanel(void); 
  54.   virtual void Redraw(void) { DrawPanel(); }
  55.   virtual void Open(Iso *B, int X, int Y);
  56.   virtual void Reopen(int X, int Y); 
  57.   virtual void Swap(void); 
  58.   virtual void Hide(void); 
  59.   virtual void Show(void); 
  60.   virtual void SetVisibleFlag(int F);
  61.   virtual void Select(void); 
  62.   virtual void Remove(void); 
  63.   virtual void Prompt(void); 
  64.   virtual void UnPrompt(void); 
  65.   virtual void Enter(MsgPkt &M); 
  66.   virtual void Leave(MsgPkt &M); 
  67.   virtual void SwitchFocus(MsgPkt &M); 
  68.   virtual void Activate(MsgPkt &) { ; } 
  69.   virtual void OnMouseEnter(MsgPkt &M); 
  70.   virtual void OnMouseLeave(MsgPkt &M); 
  71.   virtual void OnMouseWithin(MsgPkt &) { ; }
  72.   virtual void OnClose(MsgPkt &M); 
  73.   virtual void OnMouseUp(MsgPkt &M) { Activate(M); }
  74.   virtual void OnMouseDown(MsgPkt &M); 
  75.   virtual void BorderHandler(MsgPkt &M); 
  76.   virtual void OnMouseStillDown(MsgPkt &) { ; }
  77.   virtual void OnKeyStroke(MsgPkt &M); 
  78.   virtual void OnShiftArrow(MsgPkt &M); 
  79.   virtual void Dispatch(MsgPkt &M);
  80. };
  81.  
  82. class IsoMgr {
  83. public:
  84.   Iso *Top, *Bottom; // Top and bottom of iso stack   
  85.   Iso *Base;         // Who this stack belongs to     
  86.   Iso *Hot;          // Who the mouse is currently on 
  87.   Iso *Marker;       // A marker used when cycling    
  88.   IsoMgr(Iso *B);
  89.   virtual ~IsoMgr(void); 
  90.   virtual void Push(Iso *Ip); 
  91.   virtual void MoveToFront(Iso *Me, int Keep); 
  92.   virtual void ResetTouchFlags(Iso *Me);
  93.   virtual void SetTouchFlags(Iso *Me);
  94.   virtual void OnIso(int Mx, int My, Iso **I);
  95.   virtual Iso *CycleForw(Iso *Curr);
  96.   virtual void ProcessCycle(MsgPkt &M);
  97.   virtual void EventLoop(MsgPkt &M);
  98.   virtual void EventStep(MsgPkt &M);
  99. };
  100.  
  101. #endif
  102.